﻿// code02050300.cpp : 处理类型
// decltype类型指示符

#include <iostream>
using namespace std;

int func();

int main()
{
    int m;
    decltype(func()) sum;//返回 func（）的返回值类型

    const int ci = 0, & cj = ci;
    decltype(ci) x = 0;     //返回 const int类型
    decltype(cj) y = x;     //返回 const int&
    decltype(cj) z;         //报错！返回const int&，未初始化

    int i = 42, * p = &i, & r = i;
    decltype(r + 0) b;      //r+0为int，返回int类型
    decltype(*p) c;         //报错！返回int&，未初始化
    decltype((i)) d;        //报错！返回int&，未初始化
    decltype(((i))) d1 = i; //返回int&
    decltype(i) e;          //返回int
}


